home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir30 / heaven_1.zip / DDTIME.LSP < prev    next >
Lisp/Scheme  |  1993-08-29  |  3KB  |  110 lines

  1. ;;╔══════════════════════════════════════════════════════════════════════════╗
  2. ;;║Program name:       DDTIME.LSP                                            ║
  3. ;;║Initial Author:     Michael Jenkins                                       ║
  4. ;;║Description:        This is a dialog box for setting the time elapsed     ║
  5. ;;║                    between automatic saves. There is no provision for    ║
  6. ;;║                    disabling automatic saves to encourage use of this    ║
  7. ;;║                    feature.                                              ║
  8. ;;╚══════════════════════════════════════════════════════════════════════════╝
  9. ;;
  10. ;
  11.  
  12. ;;; ===================== load-time error checking ============================
  13. ;;;
  14.  
  15. (defun ai_abort (app msg)
  16.    (defun *error* (s)
  17.       (if old_error (setq *error* old_error))
  18.       (princ)
  19.    )
  20.    (if msg
  21.       (alert (strcat " Application error: "
  22.             app
  23.             " \n\n  "
  24.             msg
  25.             "  \n"
  26.          )
  27.       )
  28.    )
  29.    (exit)
  30. )
  31.  
  32. ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
  33. ;;; and then try to load it.
  34. ;;;
  35. ;;; If it can't be found or it can't be loaded, then abort the
  36. ;;; loading of this file immediately, preserving the (autoload)
  37. ;;; stub function.
  38.  
  39. (cond
  40.    (  (and ai_dcl (listp ai_dcl)))          ; it's already loaded.
  41.  
  42.    (  (not (findfile "ai_utils.lsp"))                     ; find it
  43.       (ai_abort "DDTIME"
  44.          (strcat "Can't locate file AI_UTILS.LSP."
  45.    "\n Check support directory.")))
  46.  
  47.    (  (eq "failed" (load "ai_utils" "failed"))            ; load it
  48.    (ai_abort "DDTIME" "Can't load file AI_UTILS.LSP"))
  49. )
  50.  
  51. (if (not (ai_acadapp))               ; defined in AI_UTILS.LSP
  52.    (ai_abort "DDTIME" nil)        ; a Nil <msg> supresses
  53. )                                    ; ai_abort's alert box dialog.
  54.  
  55. ;;; ==================== end load-time operations ===========================
  56.  
  57. (defun C:DDTIME (/ timer timer_update id ddtime_list)
  58.    
  59.    (setq ddtime_list '(15 30 45 60 120))
  60.  
  61.    ;update when OK
  62.    (defun timer_update()
  63.       (done_dialog)
  64.       (setvar "savetime" timer)
  65.    )
  66.  
  67.    ;initialize dialog
  68.    (setq id (load_dialog "ddtime.dcl"))
  69.    (new_dialog "ddtime" id)
  70.  
  71.    ;set default time if no time is set
  72.    (set_tile "15" "1")
  73.  
  74.    ;set default time if it matches
  75.    (if (/= (member (getvar "savetime") ddtime_list) nil)
  76.       (progn
  77.          (set_tile (itoa (getvar "savetime")) "1")
  78.          (setq timer (getvar "savetime"))
  79.       )   
  80.       (setq timer 15)
  81.    )
  82.  
  83.    ;set callback actions
  84.    (mapcar
  85.       '(lambda (x)
  86.          (action_tile (itoa x) (strcat "(setq timer " (itoa x) ")"))
  87.        )
  88.        ddtime_list
  89.    )
  90.    (action_tile "accept" "(timer_update)")
  91.    (action_tile "help" "(acad_helpdlg \"ddtime\" \"ddtime\")")
  92.  
  93.    (start_dialog)
  94.    (unload_dialog id)
  95.    (prin1)
  96. )
  97. ;;============================ THE END =======================================
  98. (princ "DDTIME Loaded.")
  99. (princ)
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.